/**
 * 1. 知道promise的A+规范吗
 *  promise实例调用 then  catch  all  finally  rance
 *  Promise类属性(静态属性) Promise.resolve()  Promise.reject()
 * 2. 知道promise如何处理并发吗
 *    如何处理 promise.all 其中一个错误导致结果错误的方式
 * 3. 假设有A B C 三个接口 如何知道 谁请求的速度更快 需要在最快的请求中处理下一步操作 怎么做
 *
 * 4. 利用promise封装一个动画加载机制 比如 在请求之前出现动画 不论成功或者失败 动画消失(只调用一次)
 * 5. 实现sleep函数 完成下列功能
 *     console.log(1)
 *     await sleep(1000)
 *     console.log(2)
 *
 * 6. 如何处理请求失败重连
 *    reduceRequest(requestGET,params,10000,1000)
 * 7. 打印一些api出现的双方括号什么意思
 * [[TARGET]] : 调用不动  v8内核里面
 * [[Scopes]] : 调用不动  v8内核里面
 */

//
class Person {
  static defaultProps = {
    //defaultProps 斜体
    name: '123'
  };
}

console.log(new Person());

console.log(Person.defaultProps.name);


function sleep(time) {
  // pending : 等待
  // return new Promise(resolve => {
  //   setTimeout(() => {
  //     resolve();
  //   }, time);
  // })

  let startTime = new Date().getTime();
  while (true) {
    if (startTime + time <= new Date().getTime()) {
      return true;
    }
  }
}


async function gener() {
  console.log(1);
  // Thead.sleep(1000);
  await sleep(2000);
  console.log(2);
}

function gener1() {
  console.log(1);
  // Thead.sleep(1000);
  sleep(2000);// 同步 阻塞浏览器
  console.log(2);
}

// gener();
gener1();
